﻿using Halcon二次开发.Model;
using Halcon二次开发.Model.储放所有单例.储存每个单例界面;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Halcon二次开发.View.输入框
{
    public partial class NameForm : Form
    {

        public string name = "";
        string proName;
        //大工程名称
        public string fathName;
        public NameForm(string proName)
        {
            this.proName = proName;
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "" || Directory.Exists($"Data//工程文件//{proName}//{textBox1.Text}任务文件"))
            {
                (FormDb.Db["Form1"] as Form1).textBox1.AppendText("工程文件夹已存在：" + $"Data//工程文件//{proName}//{textBox1.Text}任务文件" + "\r\n");
                MessageBox.Show("文件名称为空或重复文件名称!");
                this.Close();
                return;
            }
            name = textBox1.Text;
            //using (FileStream fileStream = new FileStream($"..\\..\\Data\\工程文件\\{textBox1.Text.Trim()}工程文件.shm", FileMode.Create, FileAccess.Write))
            //{
            //    byte[] buffer = new byte[1024 * 1024 * 5];
            //    fileStream.Write(buffer, 0, buffer.Length);
            //}
            string path = $@"Data\工程文件\{fathName}\{textBox1.Text.Trim()}任务文件";
            try
            {
                // 检查文件夹是否已存在  
                if (!Directory.Exists(path))
                {
                    // 如果文件夹不存在，则创建它  
                    Directory.CreateDirectory(path);
                    //创建模板匹配文件夹
                    Directory.CreateDirectory(path + "\\模板匹配文件");
                    //创建计量模型文件夹
                    Directory.CreateDirectory(path + "\\计量模型文件");

                    File.Create(path + "\\系统文件.ini").Close();
                    File.WriteAllText(path + "\\系统文件.ini", "最终版权为: 蒋佳航,蒋佳峻,屈忠辉");

                    FileAttributes attributes = File.GetAttributes(path + "\\系统文件.ini");
                    attributes |= FileAttributes.Hidden;
                    File.SetAttributes(path + "\\系统文件.ini", attributes);

                    (FormDb.Db["Form1"] as Form1).textBox1.AppendText("工程文件夹已创建：" + path + "\r\n");
                }
                else
                {
                    // 如果文件夹已存在，则打印一条消息  
                    ////创建模板匹配文件夹
                    //Directory.CreateDirectory(path + "\\模板匹配文件");
                    ////创建计量模型文件夹
                    //Directory.CreateDirectory(path + "\\计量模型文件");
                    name = "";
                    MessageBox.Show("工程文件夹已存在,请勿创建同名的任务文件!","警告",MessageBoxButtons.OK,MessageBoxIcon.Warning);
                    (FormDb.Db["Form1"] as Form1).textBox1.AppendText("工程文件夹已存在：" + path + "\r\n");
                }
            }
            catch (Exception ex)
            {
                // 捕获并处理可能发生的异常  
                (FormDb.Db["Form1"] as Form1).textBox1.AppendText("创建工程文件夹时发生错误：" + ex.Message + "\r\n");
            }
            this.Close();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
